<?php

class visitaEmAberto extends Object{
    
    /**
     * Procura por funcionários, visitas ou empresas que não foram completamente salvo. 
     * @param int $cod_usuario <p>Código do vendedor que não terminou de cadastrar o dado</p>
     * @return String Uma frase contendo um link para uma empresa, visita ou funcionário que não
     * foram completamenta salvos. String vazia caso não encontre dados não salvos
     */
    public function findUnsavedVisitaData($cod_usuario){
        
        $this->LoadResource('html', 'html');
        
        //recupera as empresas em aberto
        $str = $this->getEmpresasEmAberto($cod_usuario);
        if($str != "") return $str;
        
        //recupera os funcionários em aberto
        $str = $this->getFuncionariosEmAberto($cod_usuario);
        if($str != "") return $str;
        
        //recupera as visitas em aberto
        $str = $this->getVisitasEmAberto($cod_usuario);
        if($str != "") return $str;
        
        return "";
    }
    
    /**
     * Método auxiliar do VisitasEmAberto
     * Verifica se existe alguma empresa que não foi salva
     * @param int $cod_usuario <p>Código do vendedor que não terminou de cadastrar o dado</p>
     * @return string O nome e um texto contendo um link para uma das empresas em aberto. 
     * String vazia caso não tenha nenhuma empresa em aberto
     */
    private function getEmpresasEmAberto($cod_usuario){
        $this->LoadModel('venda/empresa', 'emp');
        $where = "venda_empresa_status = 'unsaved' AND cod_usuario = '$cod_usuario'";
        $count = $this->emp->getCount($where);
        if($count == "0") return "";

        $var  = $this->emp->selecionar(array('venda_empresa_cod'), $where, 1);
        $var  = array_shift($var);
        $link = $this->html->getLink("venda/empresa/show/".$var['venda_empresa_cod']);
        $link2 = $this->html->getLink("venda/empresa/apagar/".$var['venda_empresa_cod']);
        $cname = ($count == 1)? " Existe uma empresa que não terminou de ser cadastrada":
            " Existem ($count) empresas que não terminaram de ser cadastradas";
        return "$cname <a href='$link'>clique aqui</a> para continuar<hr/>
            Você também pode <a href='$link2'>descartar esta empresa</a>";
    }

    /**
     * Método auxiliar do VisitasEmAberto
     * Verifica se existe algum funcionário que não foi salvo
     * @param int $cod_usuario <p>Código do vendedor que não terminou de cadastrar o dado</p>
     * @return string O nome e um texto contendo um link para um dos funcionários em aberto. 
     * String vazia caso não tenha nenhum funcionário em aberto
     */
    private function getFuncionariosEmAberto($cod_usuario){
        $this->LoadModel('venda/funcionario', 'emp');
        $where = "venda_funcionario_status = 'unsaved' AND cod_usuario = '$cod_usuario'";
        $count = $this->emp->getCount($where);
        if($count == "0") return "";

        $var  = $this->emp->selecionar(array('venda_funcionario_cod'), $where, 1);
        $var  = array_shift($var);
        $link = $this->html->getLink("venda/funcionario/edit/".$var['venda_funcionario_cod']);
        $link2 = $this->html->getLink("venda/funcionario/apagar/".$var['venda_funcionario_cod']);
        $cname = ($count == 1)? " Existe um funcionário que não terminou de ser cadastrado": 
            " Existem ($count) funcionários que não terminaram de ser cadastrados";
        return "$cname <a href='$link'>clique aqui</a> para continuar<hr/>
            Você também pode <a href='$link2'>descartar este funcionário</a>";
    }

    /**
     * Método auxiliar do VisitasEmAberto
     * Verifica se existe alguma visita que não foi salva
     * @param int $cod_usuario <p>Código do vendedor que não terminou de cadastrar o dado</p>
     * @return string O nome e um texto contendo um link para uma das visitas em aberto. 
     * String vazia caso não tenha nenhuma visita em aberto
     */
    private function getVisitasEmAberto($cod_usuario){
        $this->LoadModel('venda/visita', 'vis');
        $where = "venda_visita_bdstatus = 'unsaved' AND cod_usuario = '$cod_usuario'";
        $count = $this->vis->getCount($where);
        if($count == "0") return "";
        $var   = $this->vis->selecionar(array('venda_visita_cod'), $where, 1);
        $var   = array_shift($var);
        $link  = $this->html->getLink("venda/visita/edit/".$var['venda_visita_cod']);
        $link2 = $this->html->getLink("venda/visita/apagar/".$var['venda_visita_cod']);
        $cname = ($count == 1)? " Existe uma visita em aberto": " Existem ($count) visitas em aberto";
        return "$cname <a href='$link'>clique aqui</a> para continuar. <hr/>
            Você também pode <a href='$link2'>descartar esta visita</a>";
     }
}

?>
